import request from '@/request'

// 获取文章列表
export function getArticles(query, page) {
  return request({
    url: '/articles',
    method: 'post',
    data: {
      // 文章数量
      page: page.pageNumber,
      // 每页查询几条数据
      pageSize: page.pageSize,
      name: page.name,
      // 文章分类
      sort: page.sort,
      // 想要筛选的年份
      year: query.year,
      // 想要筛选的月份
      month: query.month,
      // 搜索标签
      tagId: query.tagId,
      // 搜索词
      keyword: query.keyword,
      // 文章是否收藏
      favorite:query.favorite,
      // 分类id
      categoryId: query.categoryId,
      // 我的文章标记
      myArticleFlag: page.myArticleFlag
    }
  })
}
// 获取最热文章
// 获取到的是一个文章的集合{
//   {title："...",summary:"...",view_counts:...,....},
//   {title："...",summary:"...",view_counts:...,....},
//   {title："...",summary:"...",view_counts:...,....},
// }
export function getHotArtices() {
  return request({
    url: '/articles/hot',
    method: 'post'
  })
}
// 获取最新文章
// 获取到的是一个文章的集合{
//   {title："...",summary:"...",view_counts:...,....},
//   {title："...",summary:"...",view_counts:...,....},
//   {title："...",summary:"...",view_counts:...,....},
// }
export function getNewArtices() {
  return request({
    url: '/articles/new',
    method: 'post'
  })
}

// 通过传入文章的ID查询文章的信息
// 能获取到的信息有：文章title（标题），summary（文章概述），view_counts（文章浏览次数），author_id（作者id）
// body_id（文章主页内容的id）,creat_date(创建时间)
export function viewArticle(id) {
  return request({
    url: `/articles/view/${id}`,
    method: 'post'
  })
}
// 从分类中获取文章  传入的id是分类id
// 获取到的是一个文章的集合{
//   {title："...",summary:"...",view_counts:...,....},
//   {title："...",summary:"...",view_counts:...,....},
//   {title："...",summary:"...",view_counts:...,....},
// }
export function getArticlesByCategory(id) {
  return request({
    url: `/articles/category/${id}`,
    method: 'post'
  })
}


// 通过标签id查看文章
// 获取到的是一个文章的集合{
//   {title："...",summary:"...",view_counts:...,....},
//   {title："...",summary:"...",view_counts:...,....},
//   {title："...",summary:"...",view_counts:...,....},
// }
export function getArticlesByTag(id) {
  return request({
    url: `/articles/tag/${id}`,
    method: 'post'
  })
}

// 发布文章，传入值是article和token
// 返回值为data.success 发布成功则返回
export function publishArticle(article,token) {
  return request({
    headers: {'Authorization': token},
    url: '/articles/publish',
    method: 'post',
    data: article
  })
}
// 查找收藏文章列表
// 传入favorite  
// 如果查询成功，返回一个文章集合，这个集合是该用户收藏的所有文章的信息
// 如果查询失败，后端会返回一个错误  PARAMS_ERROR(10001,"参数有误")
export function listArchives(favorite) {
  return request({
    url: '/articles/listArchives',
    method: 'post',
    data: {"favorite": favorite}
  })
}
// 通过id查询文章的信息
export function getArticleById(id) {
  return request({
    url: `/articles/${id}`,
    method: 'post'
  })
}

//文章置顶
// 通过增加权重的方式来达到置顶效果
export function articleTop(id) {

  return request({
    url: `/articles/top/${id}`,
    method: 'post'
  })
}

// 删除文章通过给后端传入需要删除的文章来进行删除操作
// 逻辑删除，通过删除文章信息，让该文章无法被获取，但是文章body没有被删除
export function deleteArticle(id) {
  return request({
    url: `/articles/delete/${id}`,
    method: 'post'
  })
}

// 收藏文章
// 将收藏文章的id和用户信息传入，后端会进行收藏文章的操作
export function favoriteArticle(id, status) {
  return request({
    url: '/favorite/save',
    method: 'post',
    data: {"articleId":id, "status": status}
  })
}

// 分享文章
// 将好友id和文章id放在data对象中传给后端，由后端进行分享处理
// 后端会对好友id进行查询，如果好友id不存在返回PARAMS_ERROR(10001,"参数有误")
// 对文章id进行查询，如果文章不存在则会返回SHARE_ERROR_ARTICLE_DELETE(10009,"分享错误，文章已被删除")
export function shareArticle(data) {
  return request({
    url: '/articles/share',
    method: 'post',
    data: data
  })
}
